package br.com.calculadora.formula.selecionar;

import android.util.Log;

public class SelecionarFormulaDeslocamento extends SelecionarFormulaAbstract {

	private final String TAG = SelecionarFormulaDeslocamento.class.getSimpleName();

	@Override
	public void selecionarFormula() {
		resultado = true;
		
		// S0 = S + V * T (Acha o final)
		if (resultado){
			if (verificarCampos.isCampoDeslocamentoInicial(bean) && verificarCampos.isCampoVelocidadeFinal(bean) && verificarCampos.isCampoTempo(bean)){
				Log.i(TAG, "S0 = S + V * T");
				calcularDeslocamento.calcularDeslocamento1();
				resultado = false;
			}
		}
		
		// S0 = S + V * T (Acha o Inicial)
		if (resultado){
			if (verificarCampos.isCampoDeslocamentoFinal(bean) && verificarCampos.isCampoVelocidadeFinal(bean) && verificarCampos.isCampoTempo(bean)){
				Log.i(TAG, "S0 = S + V * T");
				calcularDeslocamento.calcularDeslocamento2();
				resultado = false;
			}
		}
		
		// S = VM * T
		if (resultado){
			if (verificarCampos.isCampoVelocidadeMedia(bean) && verificarCampos.isCampoTempo(bean) && !verificarCampos.isCampoDeslocamentoInicial(bean)){
				Log.i(TAG, "S = VM * T");
				calcularDeslocamento.calcularDeslocamento3();
				resultado = false;
			}
		}
		
		//  V^V = V0^V0 + 2 * A * S
		if (resultado){
			if (verificarCampos.isCampoVelocidadeInicial(bean) && verificarCampos.isCampoVelocidadeFinal(bean) && verificarCampos.isCampoAceleracao(bean)){
				Log.i(TAG, "V^V = V0^V0 + 2 * A * S");
				calcularDeslocamento.calcularDeslocamento4();
				resultado = false;
			}
		}

		// S = S0 + V0 * T + (A * T * T) / 2 (Acha o final)
		if (resultado){
			if (verificarCampos.isCampoAceleracao(bean) && verificarCampos.isCampoTempo(bean) && verificarCampos.isCampoVelocidadeInicial(bean) && verificarCampos.isCampoDeslocamentoInicial(bean)){ 
				Log.i(TAG, "S = S0 + V0 * T + (A * T * T) / 2");
				calcularDeslocamento.calcularDeslocamento5();
				resultado = false;
			}
		}
		
		// S = S0 + V0 * T + (A * T * T) / 2 (Acha o inicial)
		if (resultado){
			if (verificarCampos.isCampoAceleracao(bean) && verificarCampos.isCampoTempo(bean) && verificarCampos.isCampoVelocidadeInicial(bean) && verificarCampos.isCampoDeslocamentoFinal(bean)){ 
				Log.i(TAG, "S = S0 + V0 * T + (A * T * T) / 2");
				calcularDeslocamento.calcularDeslocamento6();
				resultado = false;
			}
		}
		
		// ANALISA OS DADOS INCOMPLETOS
		/*if(resultado){
			AnalisarDadosAusentesDeslocamento dadosAusentes = new AnalisarDadosAusentesDeslocamento();
			if(!dadosAusentes.analisarDeslocamento(fisicaBean)){
				return;
			}
		}*/
	}
}
